{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "daily-darkness",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import copy\n",
    "import warnings\n",
    "import seaborn as sns\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import statsmodels.formula.api as smf\n",
    "from TMB_plotter.TMB_plotter import plotTMB\n",
    "from tools.data_handling import calculate_p_value, latexify_p_value\n",
    "from tools.data_handling import make_boxplot\n",
    "from tools.file_utilities import make_folder_if_not_exists\n",
    "import qgrid\n",
    "matplotlib.rcParams['pdf.fonttype'] = 42\n",
    "matplotlib.rcParams['ps.fonttype'] = 42\n",
    "matplotlib.rcParams.update({\"axes.grid\" : False})\n",
    "# plt.rc('font', family='arial')\n",
    "# plt.rcParams.update({'font.size': 7})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ideal-undergraduate",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Signatures to analyse: COSMIC or denovo\n",
    "analysis = 'COSMIC'\n",
    "adjust_TMB = False # adjust TMB for sex, age and stage in plots\n",
    "# Mutation type to analyse\n",
    "mutation_types = ['SBS','DBS','ID']\n",
    "SBS_context = 1536\n",
    "if analysis=='COSMIC':\n",
    "    SBS_context = 96"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "typical-appointment",
   "metadata": {},
   "outputs": [],
   "source": [
    "# import the metadata\n",
    "data_merged = pd.read_csv('data_merged.csv',index_col=0)\n",
    "\n",
    "data_merged = data_merged.replace('Czech Republic', 'Czechia')\n",
    "data_merged = data_merged.replace('United Kingdom', 'UK')\n",
    "data_merged = data_merged.replace('Ceske Budejovice', 'Ceske B.')\n",
    "\n",
    "# qgrid.show_grid(data_merged, grid_options={'forceFitColumns': False, 'defaultColumnWidth': 100})\n",
    "\n",
    "# drop Romania and/or Serbia\n",
    "# data_merged = data_merged[data_merged.country != 'Romania']\n",
    "# data_merged = data_merged[data_merged.country != 'Serbia']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "indian-reliance",
   "metadata": {},
   "outputs": [],
   "source": [
    "# import signature attributions\n",
    "merged_sigs_with_metadata = data_merged.copy()\n",
    "# merged_sigs_with_metadata.index = merged_sigs_with_metadata.index.str.replace(r'a', '')\n",
    "for mutation_type in mutation_types:\n",
    "    context = SBS_context if mutation_type=='SBS' else 78 if mutation_type=='DBS' else 83 if mutation_type=='ID' else 'NA'\n",
    "    mutation_type_context = mutation_type + str(context)\n",
    "    if analysis=='COSMIC':\n",
    "#     v14 COSMIC nominal\n",
    "        sigs_CIs = pd.read_csv('./MSA_attribution/962_Consensus_v3/cosmic_noCI_penalties/SigProfilerExtractor/%s/output_tables/CIs_RCC_Manuscript_COSMIC_%s_bootstrap_output_weights.csv' % (mutation_type_context, mutation_type_context), index_col=0)\n",
    "        sigs_abs = pd.read_csv('./MSA_attribution/962_Consensus_v3/cosmic_noCI_penalties/SigProfilerExtractor/%s/output_tables/output_RCC_Manuscript_COSMIC_%s_mutations_table.csv' % (mutation_type_context, mutation_type_context), index_col=0)\n",
    "        stat_inf = pd.read_csv('./MSA_attribution/962_Consensus_v3/cosmic_noCI_penalties/SigProfilerExtractor/%s/output_tables/output_RCC_Manuscript_COSMIC_%s_stat_info.csv' % (mutation_type_context, mutation_type_context), index_col=0)\n",
    "        sigs_abs = sigs_abs.add_suffix('_abs')\n",
    "    elif analysis=='denovo':\n",
    "        sigs_CIs = pd.read_csv('./MSA_attribution/962_Consensus_v3/denovo_noCI_penalties/SigProfilerExtractor/%s/output_tables/CIs_RCC_Manuscript_denovo_%s_bootstrap_output_weights.csv' % (mutation_type_context, mutation_type_context), index_col=0)\n",
    "        sigs_abs = pd.read_csv('./MSA_attribution/962_Consensus_v3/denovo_noCI_penalties/SigProfilerExtractor/%s/output_tables/output_RCC_Manuscript_denovo_%s_mutations_table.csv' % (mutation_type_context, mutation_type_context), index_col=0)\n",
    "        stat_inf = pd.read_csv('./MSA_attribution/962_Consensus_v3/denovo_noCI_penalties/SigProfilerExtractor/%s/output_tables/output_RCC_Manuscript_denovo_%s_stat_info.csv' % (mutation_type_context, mutation_type_context), index_col=0)\n",
    "        sigs_abs = sigs_abs.add_suffix('_abs')\n",
    "    stat_inf = stat_inf.rename(columns={'Mutational burden': mutation_type + '_burden'})\n",
    "    # merge with metadata\n",
    "    merged_sigs_with_metadata = pd.concat([sigs_CIs, merged_sigs_with_metadata], axis=1)#.fillna(0)\n",
    "    merged_sigs_with_metadata = pd.concat([sigs_abs, merged_sigs_with_metadata], axis=1)#.fillna(0)\n",
    "    merged_sigs_with_metadata = pd.concat([stat_inf[mutation_type + '_burden'], merged_sigs_with_metadata], axis=1)#.fillna(0)\n",
    "#     merged_sigs_with_metadata = pd.merge(sigs_CIs, merged_sigs_with_metadata, left_index=True, right_index=True)\n",
    "#     merged_sigs_with_metadata = pd.merge(sigs_abs, merged_sigs_with_metadata, left_index=True, right_index=True)\n",
    "# qgrid.show_grid(merged_sigs_with_metadata, grid_options={'forceFitColumns': False, 'defaultColumnWidth': 100})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "reserved-nutrition",
   "metadata": {},
   "outputs": [],
   "source": [
    "# DBS to nan for CAGEKID\n",
    "if 'DBS' in mutation_types:\n",
    "    DBS_cols = [col for col in merged_sigs_with_metadata.columns if 'DBS' in col]\n",
    "    merged_sigs_with_metadata.loc[merged_sigs_with_metadata['Sequencing'] == 'External (CAGEKID)', DBS_cols] = np.nan\n",
    "# qgrid.show_grid(merged_sigs_with_metadata, grid_options={'forceFitColumns': False, 'defaultColumnWidth': 100})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "described-recipe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['SBS1', 'SBS2', 'SBS4', 'SBS5', 'SBS12', 'SBS13', 'SBS18', 'SBS21', 'SBS22', 'SBS44', 'SBS1536A', 'SBS1536B', 'SBS1536F', 'SBS1536I', 'DBS2', 'DBS4', 'DBS9', 'DBS78C', 'DBS78D', 'ID1', 'ID2', 'ID3', 'ID5', 'ID8', 'ID9', 'ID11', 'ID12', 'ID83C']\n"
     ]
    }
   ],
   "source": [
    "signatures = []\n",
    "for mutation_type in mutation_types:\n",
    "    sigs = [col for col in merged_sigs_with_metadata.columns if mutation_type in col\n",
    "            and not '_abs' in col and not 'CI' in col and not 'burden' in col]\n",
    "    signatures.extend(sigs)\n",
    "    for signature in sigs:\n",
    "        for sample in merged_sigs_with_metadata.index:\n",
    "            attribution = merged_sigs_with_metadata.loc[sample, signature + '_abs']\n",
    "            CI_string = merged_sigs_with_metadata.loc[sample, signature]\n",
    "            if not pd.isnull(CI_string):\n",
    "                CI_string = CI_string.translate({ord(i):None for i in '[,]'})\n",
    "                central, lower_CI, upper_CI = [float(x) for x in CI_string.split()]\n",
    "                if lower_CI != 0:\n",
    "                    merged_sigs_with_metadata.loc[sample, signature + '_CI'] = attribution\n",
    "                else:\n",
    "                    merged_sigs_with_metadata.loc[sample, signature + '_CI'] = 0\n",
    "            else:\n",
    "                central, lower_CI, upper_CI = [np.nan, np.nan, np.nan]\n",
    "                merged_sigs_with_metadata.loc[sample, signature + '_CI'] = np.nan\n",
    "print(signatures)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1fc96441",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Samples filtered out: True\n",
      "Number of groups: 5\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/senkins/work/RCC_analysis/TMB_plotter/TMB_plotter.py:36: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  df['log10BURDENpMB'] = df.apply(lambda row: np.log10(row.Mut_burden/scale), axis = 1)\n",
      "/Users/senkins/work/RCC_analysis/TMB_plotter/TMB_plotter.py:36: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  df['log10BURDENpMB'] = df.apply(lambda row: np.log10(row.Mut_burden/scale), axis = 1)\n",
      "/Users/senkins/work/RCC_analysis/TMB_plotter/TMB_plotter.py:36: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  df['log10BURDENpMB'] = df.apply(lambda row: np.log10(row.Mut_burden/scale), axis = 1)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Samples filtered out: True\n",
      "Number of groups: 4\n",
      "Samples filtered out: True\n",
      "Number of groups: 3\n"
     ]
    },
    {
     "data": {
      "image/png": "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4uLCXddShaL6njt3jjk7O7Pk5GR28+ZNFhISwp49e6ZyLJkLFy6ww4cPs44dOzI/Pz/m4+PDZs2axdauXcvu37/PGGNs+fLlan+fS9Ml+OrVKxYeHs5GjhzJ+vTpww4cOKDyDwNF7/HZs2e59zgmJoZt375dre8xY8W7e21tbdkPP/zAGCv4fN24cYMtXryYLV26lLVp04bZ29urPFezpGO7bt067tieOXOmzPX9ZLpYFZF1Rfz777+Ii4uDl5cX6tWrh7y8PEilUuTk5GD37t3YuHEjtmzZAhMTE7x7907luCUNO9bT0wNQMNR4/PjxaN68OVxcXNCvXz+1DDsu63BnExMT6Orqqj2usmHlbdq0UXlYuaJja2ZmhszMTAQGBuLvv/9GeHg4/vrrLxw5cgT6+vpISkpSua5F43p6eqJevXpcV5ShoSG3dqRKXTdFaGlpoVWrVrh69SokEgn+++8/bNu2Db/88gvEYjH27t2L5s2b46effkJISIjK8WQUHVsnJydoa2sjMzMTz549w9dff40pU6bA2NgY//zzD2rWrKly11zR+kZFRWH79u3w8vLCyZMnMWHCBMTHx2P8+PE4fPiwOqqKzp07o0mTJqhRowaMjIywadMmLFy4ED/++COsra1x4MABHDhwQO3vc9EuwXv37nFdggCQm5sLCwsL2NnZoWnTpvD29oajoyN0dHRUjlv0Pd62bRt++OEH1K1bF2FhYdDV1cXkyZOxa9cudVQVQPHu3pYtW6JBgwbYtWsX/P39cfLkSVhaWqJv376oV68eVqxYAWNjY657tDxKOraTJk2CtbU13r9/j0OHDpW9viql7QrixYsX7Ny5c1w32PHjx9n169cZYwUXpLt06cJWrFjB7t69q7aYubm5bObMmWzcuHFs6tSp7Pjx4yw3N5frajxx4gQbPXo0i42NVctosaJxfXx8mJ+fHztx4oRcqyctLY09fPiQLVu2jP38889qG1hSuL5+fn7s6NGjbMGCBax///7s1KlTLC8vjx06dIiNGDGCa3Gp+guYseLH9o8//mDDhw9nqamp7P79+6xnz55swYIFLDIyUuVYReOePXuW65qSdd0cPXqUbdy4kU2bNo2NGzdOLYMOZGTv8ZAhQ9js2bPZoUOHWHp6OuvTpw/Xart79y4bP34819WszriFz+W4uDiWmZnJnVsikYhr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\n",
      "text/plain": [
       "<Figure size 496.8x374.4 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 295.2x273.6 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 352.8x374.4 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TMB plots\n",
    "pruned_signatures = merged_sigs_with_metadata[[sig+'_CI' for sig in signatures]].copy()\n",
    "pruned_signatures.columns = pruned_signatures.columns.astype(str).str.replace(\"_CI\", \"\")\n",
    "signature_renaming = {\n",
    "    'SBS1536A':'SBS40b',\n",
    "    'SBS1536B':'SBS40a',\n",
    "    'SBS1536F':'SBS40c',\n",
    "    'SBS22':'SBS22a',\n",
    "    'SBS1536I':'SBS22b',\n",
    "    'DBS78D':'DBS20',\n",
    "    'DBS78C':'DBS_C',\n",
    "    'ID83C':'ID23'\n",
    "}\n",
    "for mutation_type in ['SBS','DBS','ID']:\n",
    "    pruned_signatures_local = pruned_signatures[pruned_signatures.filter(like=mutation_type).columns].copy()\n",
    "    pruned_signatures_local.dropna(inplace=True)\n",
    "    mutational_burden = pruned_signatures_local.sum(axis=1)\n",
    "    mutational_burden = mutational_burden.sort_values(ascending=False)\n",
    "    sorted_index = mutational_burden.index\n",
    "    pruned_signatures_local = pruned_signatures_local.reindex(sorted_index)\n",
    "    pruned_signatures_local = pruned_signatures_local.astype('int')\n",
    "    pruned_signatures_local = pruned_signatures_local.unstack().to_frame()\n",
    "    pruned_signatures_local.index = pruned_signatures_local.index.droplevel(level=1)\n",
    "    pruned_signatures_local = pruned_signatures_local.reset_index()\n",
    "    pruned_signatures_local.columns = ['Signature', 'Mut_burden']\n",
    "    if analysis == 'COSMIC':\n",
    "        pruned_signatures_local.replace({\"Signature\": signature_renaming}, inplace=True)\n",
    "    pruned_signatures_local['Signature'] = pruned_signatures_local['Signature'].str.replace(\"1536\", \"_\", regex=\"False\")\n",
    "    pruned_signatures_local['Signature'] = pruned_signatures_local['Signature'].str.replace(\"83\", \"_\", regex=\"False\")\n",
    "    pruned_signatures_local['Signature'] = pruned_signatures_local['Signature'].str.replace(\"78\", \"_\", regex=\"False\")\n",
    "    filename = 'attribution_TMB_plot_%s_test.pdf' % mutation_type\n",
    "    plotTMB(pruned_signatures_local, 'genome', Yrange = \"adapt\", cutoff = 0, output = '/Users/senkins/work/RCC_manuscript/Figures/' + filename)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "057c7e1e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# drop hypermutator\n",
    "if 'SBS' in mutation_types and 'PD47592a' in merged_sigs_with_metadata.index:\n",
    "    merged_sigs_with_metadata.drop('PD47592a', axis=0, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "invalid-extreme",
   "metadata": {},
   "outputs": [],
   "source": [
    "countries = ['Lithuania','Czechia','Canada','UK','Russia','Poland','Romania','Japan','Serbia','Brazil','Thailand']\n",
    "countries = list(reversed(countries))\n",
    "countries_with_ASR = pd.DataFrame(index=countries, columns = ['ASR','ASR_m', 'ASR_f'], dtype='float')\n",
    "countries_with_ASR.loc['Lithuania'] = [14.5, 20.7, 10.1]\n",
    "countries_with_ASR.loc['Czechia'] = [14.4, 20.5, 9.0]\n",
    "countries_with_ASR.loc['Canada'] = [10.4, 13.9, 7.1]\n",
    "countries_with_ASR.loc['Russia'] = [10.3, 14.1, 7.7]\n",
    "countries_with_ASR.loc['UK'] = [10.31, 13.2, 7.6]\n",
    "countries_with_ASR.loc['Poland'] = [8.1, 11.4, 5.4]\n",
    "countries_with_ASR.loc['Romania'] = [7.7, 10.7, 5.0]\n",
    "countries_with_ASR.loc['Japan'] = [7.6, 11.2, 4.2]\n",
    "countries_with_ASR.loc['Serbia'] = [7.4, 10.6, 4.6]\n",
    "countries_with_ASR.loc['Brazil'] = [4.5, 5.8, 3.3]\n",
    "countries_with_ASR.loc['Thailand'] = [1.8, 2.7, 1.2]\n",
    "countries_with_ASR['country'] = countries_with_ASR.index\n",
    "for case in merged_sigs_with_metadata.index:\n",
    "    country = merged_sigs_with_metadata.loc[case, 'country']\n",
    "    merged_sigs_with_metadata.loc[case, 'ASR_country'] = countries_with_ASR.loc[country, 'ASR']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "collective-freight",
   "metadata": {},
   "outputs": [],
   "source": [
    "# adjust TMB by age/stage\n",
    "merged_sigs_with_metadata_for_TMB = merged_sigs_with_metadata.copy()\n",
    "# regressions to adjust TMB in plots\n",
    "if adjust_TMB:\n",
    "    for mtype in mutation_types:\n",
    "        merged_sigs_with_metadata_for_TMB['%s_burden_unadj' % mtype] = merged_sigs_with_metadata_for_TMB['%s_burden' % mtype]\n",
    "        # age-adjusted regression\n",
    "        TMB_age_regression = smf.ols(formula=\"%s_burden ~ sex + age_diag\" % mtype, data=merged_sigs_with_metadata_for_TMB).fit()\n",
    "    #     print(TMB_age_regression.summary())\n",
    "        merged_sigs_with_metadata_for_TMB['%s_burden_age_adj' % mtype] = TMB_age_regression.resid + merged_sigs_with_metadata_for_TMB['%s_burden' % mtype].mean()\n",
    "        # age and stage-adjusted regression (missing values e.g. for Thailand)\n",
    "        merged_sigs_with_metadata_for_TMB['stage'].replace('Missing', np.nan, inplace=True)\n",
    "        TMB_age_stage_regression = smf.ols(formula=\"%s_burden ~ sex + stage + age_diag\" % mtype, data=merged_sigs_with_metadata_for_TMB).fit()\n",
    "    #     print(TMB_age_stage_regression.summary())\n",
    "        merged_sigs_with_metadata_for_TMB['%s_burden_age_stage_adj' % mtype] = TMB_age_stage_regression.resid + merged_sigs_with_metadata_for_TMB['%s_burden' % mtype].mean()\n",
    "        # all burdens are age and stage-adjusted\n",
    "        merged_sigs_with_metadata_for_TMB['%s_burden' % mtype] = merged_sigs_with_metadata_for_TMB['%s_burden_age_stage_adj' % mtype]\n",
    "        # replace missing TMB for Thailand cases which don't have stage information with age-adjusted values\n",
    "        merged_sigs_with_metadata_for_TMB.loc[merged_sigs_with_metadata_for_TMB['country'] == 'Thailand', '%s_burden' % mtype] = merged_sigs_with_metadata_for_TMB.loc[merged_sigs_with_metadata_for_TMB['country'] == 'Thailand', '%s_burden_age_adj' % mtype]\n",
    "        merged_sigs_with_metadata_for_TMB['%s_burden_diff' % mtype] = merged_sigs_with_metadata_for_TMB['%s_burden' % mtype] - merged_sigs_with_metadata_for_TMB['%s_burden_unadj' % mtype]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "extraordinary-monitor",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 252x167.76 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot TMB\n",
    "sns.set(rc={'figure.figsize':(3.5,2.33)})\n",
    "sns.set(font=\"Arial\")\n",
    "sns.set_context(\"paper\", rc={\"font.size\":7,\"axes.titlesize\":7,\"axes.labelsize\":7})\n",
    "sns.color_palette(\"viridis\")\n",
    "sns.set_style('whitegrid', rc={\n",
    "    'xtick.bottom': True,\n",
    "    'ytick.left': True,\n",
    "})\n",
    "\n",
    "def text_coordinates(ax):\n",
    "    return ((ax.get_xlim()[1] - ax.get_xlim()[0])*0.010 + ax.get_xlim()[0],\n",
    "            (ax.get_ylim()[1] - ax.get_ylim()[0])*1.03 + ax.get_ylim()[0])\n",
    "ordered_merged_sigs_with_metadata = merged_sigs_with_metadata_for_TMB.sort_values([\"country\"])\n",
    "# no_SBS_hypermutators = remove_3STD_hypermutators(ordered_merged_sigs_with_metadata, 'SBS_burden')\n",
    "# no_DBS_hypermutators = remove_3STD_hypermutators(ordered_merged_sigs_with_metadata, 'DBS_burden')\n",
    "# no_ID_hypermutators = remove_3STD_hypermutators(ordered_merged_sigs_with_metadata, 'ID_burden')\n",
    "# merged_sigs_with_metadata.sort_values('country', inplace=True)\n",
    "ax = sns.boxplot(x=\"country\", y=\"SBS_burden\", data=ordered_merged_sigs_with_metadata)#, inner=None)\n",
    "# sns.stripplot(x=\"country\", y=\"SBS_burden\", data=ordered_merged_sigs_with_metadata, jitter=True, ax=ax, size=1)\n",
    "p = calculate_p_value(ordered_merged_sigs_with_metadata,'country','SBS_burden')\n",
    "ax.set(ylim=(0, 30000))\n",
    "ax.text(text_coordinates(ax)[0], text_coordinates(ax)[1], \"Kruskal-Wallis, p = %.1e\" % p)\n",
    "# Rotate the tick labels and set their alignment\n",
    "plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\", size=7)\n",
    "plt.setp(ax.get_yticklabels(), size=7)\n",
    "ax.set(xlabel=None)\n",
    "ax.grid(False)\n",
    "ax.set(ylabel='SBS mutational burden')\n",
    "plt.tight_layout()\n",
    "plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig1_SBS_burden.pdf\")\n",
    "plt.clf()\n",
    "ax = sns.boxplot(x=\"country\", y=\"DBS_burden\", data=ordered_merged_sigs_with_metadata)#, inner=None)\n",
    "p = calculate_p_value(ordered_merged_sigs_with_metadata,'country','DBS_burden')\n",
    "# sns.stripplot(x=\"country\", y=\"DBS_burden\", data=ordered_merged_sigs_with_metadata, jitter=True, ax=ax, size=1)\n",
    "ax.text(text_coordinates(ax)[0], text_coordinates(ax)[1], \"Kruskal-Wallis, p = %.1e\" % p)\n",
    "# Rotate the tick labels and set their alignment\n",
    "plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\", size=7)\n",
    "plt.setp(ax.get_yticklabels(), size=7)\n",
    "ax.set(xlabel=None)\n",
    "ax.grid(False)\n",
    "ax.set(ylabel='DBS mutational burden')\n",
    "plt.tight_layout()\n",
    "plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig1_DBS_burden.pdf\")\n",
    "plt.clf()\n",
    "ax = sns.boxplot(x=\"country\", y=\"ID_burden\", data=ordered_merged_sigs_with_metadata)#, inner=None)\n",
    "p = calculate_p_value(ordered_merged_sigs_with_metadata,'country','ID_burden')\n",
    "# sns.stripplot(x=\"country\", y=\"ID_burden\", data=ordered_merged_sigs_with_metadata, jitter=True, ax=ax, size=1)\n",
    "ax.set(ylim=(-100, 3000))\n",
    "ax.text(text_coordinates(ax)[0], text_coordinates(ax)[1], \"Kruskal-Wallis, p = %.1e\" % p)\n",
    "# Rotate the tick labels and set their alignment\n",
    "plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\", size=7)\n",
    "plt.setp(ax.get_yticklabels(), size=7)\n",
    "ax.set(xlabel=None)\n",
    "ax.grid(False)\n",
    "ax.set(ylabel='ID mutational burden')\n",
    "plt.tight_layout()\n",
    "plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig1_ID_burden.pdf\")\n",
    "plt.clf()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "based-treat",
   "metadata": {},
   "outputs": [],
   "source": [
    "# # plot TMB\n",
    "# sns.set(rc={'figure.figsize':(3.5,2.33)})\n",
    "# sns.set_context(\"paper\", rc={\"font.size\":7,\"axes.titlesize\":7,\"axes.labelsize\":7})\n",
    "# sns.color_palette(\"viridis\")\n",
    "# sns.set_style('whitegrid', rc={\n",
    "#     'xtick.bottom': True,\n",
    "#     'ytick.left': True,\n",
    "# })\n",
    "# def text_coordinates(ax):\n",
    "#     return ((ax.get_xlim()[1] - ax.get_xlim()[0])*0.010 + ax.get_xlim()[0],\n",
    "#             (ax.get_ylim()[1] - ax.get_ylim()[0])*1.03 + ax.get_ylim()[0])\n",
    "# ordered_merged_sigs_with_metadata = merged_sigs_with_metadata_for_TMB.sort_values([\"country\"])\n",
    "# # no_SBS_hypermutators = remove_3STD_hypermutators(ordered_merged_sigs_with_metadata, 'SBS_burden')\n",
    "# # no_DBS_hypermutators = remove_3STD_hypermutators(ordered_merged_sigs_with_metadata, 'DBS_burden')\n",
    "# # no_ID_hypermutators = remove_3STD_hypermutators(ordered_merged_sigs_with_metadata, 'ID_burden')\n",
    "# # merged_sigs_with_metadata.sort_values('country', inplace=True)\n",
    "# ax = sns.boxplot(x=\"country\", y=\"SBS_burden_diff\", data=ordered_merged_sigs_with_metadata)#, inner=None)\n",
    "# p = calculate_p_value(ordered_merged_sigs_with_metadata,'country','SBS_burden_diff')\n",
    "# # ax.set(ylim=(0, 30000))\n",
    "# ax.text(text_coordinates(ax)[0], text_coordinates(ax)[1], r\"Kruskal-Wallis, $p = %.1e$\" % p)\n",
    "# # Rotate the tick labels and set their alignment\n",
    "# plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\")\n",
    "# ax.set(xlabel=None)\n",
    "# ax.set(ylabel='SBS TMB adj-unadj difference')\n",
    "# plt.tight_layout()\n",
    "# plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig1_SBS_burden_diff.pdf\")\n",
    "# plt.clf()\n",
    "# ax = sns.boxplot(x=\"country\", y=\"DBS_burden_diff\", data=ordered_merged_sigs_with_metadata)#, inner=None)\n",
    "# p = calculate_p_value(ordered_merged_sigs_with_metadata,'country','DBS_burden_diff')\n",
    "# # sns.stripplot(x=\"country\", y=\"DBS_burden\", data=ordered_merged_sigs_with_metadata, jitter=True, ax=ax, size=1)\n",
    "# ax.text(text_coordinates(ax)[0], text_coordinates(ax)[1], r\"Kruskal-Wallis, $p = %.1e$\" % p)\n",
    "# # Rotate the tick labels and set their alignment\n",
    "# plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\")\n",
    "# ax.set(xlabel=None)\n",
    "# ax.set(ylabel='DBS TMB adj-unadj difference')\n",
    "# plt.tight_layout()\n",
    "# plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig1_DBS_burden_diff.pdf\")\n",
    "# plt.clf()\n",
    "# ax = sns.boxplot(x=\"country\", y=\"ID_burden_diff\", data=ordered_merged_sigs_with_metadata)#, inner=None)\n",
    "# p = calculate_p_value(ordered_merged_sigs_with_metadata,'country','ID_burden_diff')\n",
    "# # sns.stripplot(x=\"country\", y=\"ID_burden\", data=ordered_merged_sigs_with_metadata, jitter=True, ax=ax, size=1)\n",
    "# # ax.set(ylim=(0, 3000))\n",
    "# ax.text(text_coordinates(ax)[0], text_coordinates(ax)[1], r\"Kruskal-Wallis, $p = %.1e$\" % p)\n",
    "# # Rotate the tick labels and set their alignment\n",
    "# plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\")\n",
    "# ax.set(xlabel=None)\n",
    "# ax.set(ylabel='ID TMB adj-unadj difference')\n",
    "# plt.tight_layout()\n",
    "# plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig1_ID_burden_diff.pdf\")\n",
    "# plt.clf()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "vocational-guard",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 252x167.76 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot signature attributions\n",
    "merged_sigs_with_metadata.sort_values('country', inplace=True)\n",
    "limits = {'SBS1':1100, # 2 Romanian, 3 UK excluded\n",
    "          'SBS18':3000, # 1 Cz excluded\n",
    "          'ID1':1000, # 1 Cz, 1 Romanian, 1 Russian, 2 UK excluded\n",
    "         }\n",
    "\n",
    "for signature in signatures:\n",
    "    if analysis == 'COSMIC':\n",
    "        signature_name_to_plot = signature.replace('SBS1536A','SBS40b')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('SBS1536B','SBS40a')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('SBS1536F','SBS40c')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('SBS22','SBS22a')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('SBS1536I','SBS22b')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('DBS78D','DBS20')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('DBS78C','DBS_C')\n",
    "        signature_name_to_plot = signature_name_to_plot.replace('ID83C','ID23')\n",
    "#     ax = sns.violinplot(x=\"country\", y=signature + \"_CI\", data=merged_sigs_with_metadata, inner=\"point\")\n",
    "    ax = sns.boxplot(x=\"country\", y=signature + \"_CI\", data=merged_sigs_with_metadata)\n",
    "    p = calculate_p_value(merged_sigs_with_metadata,'country',signature + '_CI')\n",
    "    if signature in limits.keys():\n",
    "        ax.set(ylim=(-50, limits[signature]))\n",
    "    plt.text(text_coordinates(ax)[0], text_coordinates(ax)[1], \"Kruskal-Wallis, p = %.1e\" % p)\n",
    "    # Rotate the tick labels and set their alignment\n",
    "    plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\", size=7)\n",
    "    plt.setp(ax.get_yticklabels(), size=7)\n",
    "    ax.set(xlabel=None)\n",
    "    ax.grid(False)\n",
    "#     ax.set_yscale(\"log\")\n",
    "#     ax.set(ylim=(1, 100000))\n",
    "    ax.set(ylabel=signature_name_to_plot + ' mutational burden')\n",
    "    plt.tight_layout()\n",
    "    plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/%s_%s_attribution.pdf\" % (signature_name_to_plot, analysis))\n",
    "    plt.clf()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "simple-exploration",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Difference between mut. burden and sum of sigs (SBS):\n",
      "-99.26074463323128\n",
      "Sig SBS1 in other, 0.03 on average\n",
      "Sig SBS2 in other, 0.00 on average\n",
      "Sig SBS4 in other, 0.07 on average\n",
      "Sig SBS5 in other, 0.02 on average\n",
      "Sig SBS13 in other, 0.01 on average\n",
      "Sig SBS18 in other, 0.01 on average\n",
      "Sig SBS21 in other, 0.00 on average\n",
      "Sig SBS44 in other, 0.00 on average\n",
      "Sig SBS40b in other, 0.21 on average\n",
      "Sig SBS40a in other, 0.30 on average\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAADRCAYAAADlh6/IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAyqklEQVR4nO2dd1hUx/rHP7vLUkRBROyFa9dYY2zX2KImqCn2GE1i1NxooiQW7KiI0Wg0RqOx5YnlJhoFYlessQYwVkRRECw0BWRFOmz7/eEPrgXYZfcIi8zneXweXc/MvrPnfGfemXnPvDK9Xq9HIBC80shL2gCBQPDyEUIXCMoAQugCQRlACF0gKAMIoQsEZQAhdIGgDGBV0gY8z8WLF0vaBIGg1NK2bdt8P7c4oUPBxgoEgoIpbJAUrrtAUAYQQhcIygCSCj0wMJDZs2fn/fvIkSPMmTOH2bNno9FopPwqgUBQBCQT+r179wgNDSU7OzvvM39/fxYsWEC7du0IDAyU6qsEAkERkWwxrm7duowZMwYPD4//VW71pHoXFxfi4+NfKLNq1SpWr179zGfbtm175t+ZmZlmeQNyuRydTmdyeUupQ9hgOTZIUYcUNlhZWWFnZ2fctWZ9kwEUCgUAiYmJVK5c+YX/d3d3x93d/ZnPnl851Gg0LF++3GQbJk6cyIoVK0wubyl1CBssxwYp6pDChsmTJxt97UtZjNu9ezcRERG4ubnh6enJ+fPn6dy588v4KoFAYASSj+jLli3L+3uDBg3o3r271F8hEAiKiNheEwjKAELoAkEZQAhdICgDCKELBGUAIXSBoAwghC4QlAGE0AWCMoAQukBQBjAYMJOamkpYWBi5eR7atWv30o0SCATSYnBE9/Ly4s6dO8TExBATE1McNgkEAokxOKLXq1ePIUOGFIctAoHgJWFQ6Ldu3eLrr7/G1tYWgO+///6lGyUQCKTFoNDnzp3L3r170ev1DBgwoDhsEggEEmNwjr548WLatm1L27Zt+eGHH4rDJoFAIDEGha5UKmnRogUtW7ZEJpMVh00CgUBiDLruPXr0YOrUqej1etzc3IrDJoFAIDGFCv3kyZM8evSI9u3bA5CcnFwcNgkEAokpVOhVq1ZFq9Xi4OAAQEJCQrEYJRAIpKVAoSckJHD48GEuXLhAu3bt0Ov1XLx4kX79+hWnfQKBQAIKFHqVKlUYOnQotra2vPfee8hkMj7//PPitE0gEEhEoa57jRo1iIuLw9HRkXLlyhVa0aVLl9ixYwcAs2fPxsHBgRMnThAQEMDDhw+ZMWMGVatWlc5yQbEjl8uZNGmSWXXkvjMhKF6MOgV24cKFeX//7rvv8r3Gx8cHb29vrl69ysGDBxk2bBgXL14kKioKtVqNk5OTNBaXUSxBZHq9nkOHDplVh9i5KRkMCn3UqFFs27YNvV7PyJEjC7xOq9ViY2ODi4sLQUFBALz11ltMnjyZHTt2cOXKlbzV+1yMydQieIIQmcAcDAbMrFmzhi+//JKvvvqK9evXF3idnZ0dOTk5z2Rl2bx5M3K5nEqVKuW7Nefu7k5YWNgzfwQCgfQYHNFlMhmOjo7o9Xq0Wm2B1w0dOpS5c+eiVqvp0qULERERdOzYkZkzZyKTyZg3b56khgtKhvfefdes8mqRVbdEMCj04cOH4+npCTwRc0E0b96cxYsXP/NZgwYNzDRPYGnYoDCrvBoh9JLAoNA1Gg1KpRKdTpeXNFFQNtHr9CywX2z4wkKY+GiiNMYIioRBoQcEBODt7Y1Go8Hb25uWLVsWh10WhSWseAssC3OfieJ+HgwK/f79+wQGBqLT6Xj06BGBgYF06tSpOGyzGMSKt+B5zH0mivt5MCj09u3bEx8fDzzZLsv9u6D0oVAozBqFFHIxdZMKc+8FPPEqjMWg0MuXL4+/vz96vZ5+/frRq1cvs4wTlBwymcysUahf35J/z0GKaZRUdZiDufcC4L333jP6WoNCP3XqFMuXLwfg22+/LXVCt4SbCub34FLY8CogxTTq3Xff5eDBg2bXUZowKPSsrCyCg4ORyWSkpqYWh02SItWDYS7m9uDvvfee2XvYYjmw7GJQ6CNGjODatWvo9XpmzJhRHDYJ8kOvx+58qFlVZLZrJpExpmNlZSU8mxLAoNB37drFtGnTDL699rIw1/UWD4blYY5nU9pcZktBsrfXXhZyuZwDBw6YXF48GAKBEUIfPXo0O3bsQKFQMGzYsOKwyeKQyWRifiwo1RgU+o4dOxg/fjzZ2dn88MMPLFq0qDjssixekfmxXCY3a4tMpi/5474tpdM1147i7viNct1VKhU6nQ69Xk90dDS1a9d+2XYJnkMP6Nq1MKsOhQ4WV1hmcvmJURPN+n5JsJRO10w7sjs0N7vDkhchz4JBodvb27N3714AatasyZ49e5gwYYLp1pVCpBCZnoJf8TWqvE7PggpmvlBiCUI1E0u4F1JggwzM7LDoaPx7JwaFXtpFLYWrJ5fJWVDOPJF5pHqYVd4SkCvlfGNmZ2GlUJh1P8S9MA2jXPdSjQSunrkjyKuCVq3Dqc4vZtWhSXdHYcb9sJR7Ya5nIfv/P8WFUSGwFy9epGXLljg4OLxw7ptAUNow16sA8z0Lz/QZyMzttHRGnAX3/xgU+vHjx6lYsSJdu3ZlxowZQugmIoXLKpAGpV6GvIS9vLSkLFbUWWFWHZNjJ1PBztqoaw0KXS6Xk5OTQ0xMDBpx3pfJmPtwWYrLKiidGBUws337dnx9fZk8eXKB1+WXwOGff/7B398frVaLu7s7Li4uRTZQbuZimgiBFQiMEPqaNWuoVq0affr0wdXVtcDr8kvgsGvXLipXrkxOTg7Ozs4mGWgjk8P5ayaVBaCDGAktCXMXsXQixNAkDAp98eLFJCUlsW7dOs6fP8/u3bvzvS6/BA6xsbHMnz+fPXv2cObMGbp16/ZMGZHAoeyRlpTFSjPmpq9CLEBJYFDoK1euJDExkSZNmjBu3LgCr8svgUPVqlWxtrbG0dERnU73Qhl3d3fc3d2f+ezixYtFbYNAIDBAoUJPSEigc+fOVKlSBZlMRkZGRoEueH4JHPr168esWbNQKpXMmjXrpTTAEHqZDL2ZC1nCXXy1kCK6rrQ9E4UK/cyZM9y/f/+ZzwqKlCsogUP37t3NMlCnA8yZ02n0LCwvQkcF/0OKra3S9kwUKPTHjx9To0YNbty4Qc+ePQHw9fUtNsNySX+UzfKay00ubyk3RCxCCUqSAoVuZ2dHfHw82dnZeUc8f/TRR8Vm2KuGuaOIpXRYgtJJgUK3tramf//+VK9enfPnzwMQFhZGu3btis04gUAgDQajSbZu3YqNjQ2tW7cmMzOzOGwSCAQSY1Do5cqVo1WrVsTHx6NWq4vDJoFAIDEGhT5q1Cjq1q1LYmKicNsFglJKodtrU6dOBZ4c3qDX67l9+zb9+/cvDrsEAoGEFCr0pUuXotFoiIqKwtnZGUdHx+KySyAQSIhB133hwoWsW7eOq1evMnv27OKwSSAQSIxBoSsUCqpVq0aXLl2wsnr1T54SCF5FDAq9Vq1aBAUFMWXKFJycnIrDJoFAIDFGHfe8adMm9Ho95cuXLw6bBAKBxBgU+qFDh8jMzMxLsjh48OCXbpRAIJAWg0IfO3ZscdghEBiFFGfLl0UMCl2c+ioNr8IDKpNBbMx/zKvDzLfwpDhb/lGUeW0ojYhl9GLC3AfUEh5OuUxPjVPmLcimdnskkTWComBQ6Bs3biQkJIRevXqRkJDAqFGjisMugeClIbNWlHrvqqgYFHpsbCy1a9emX79+zJ07tzhsEgheKik5OuqUMfffqAQOd+/eZfv27aSnpxeHTYJ8kGIUkptbh5U4Iz8Xc++H2fcCinQ/DAp92rRpBAQEoNPpXjgTTlB8SDEKRUV9YVYdsTH/oYJZFgBW5j3gMqXCXAskwdz7Ye69AIiNHWf0/TAqU4u9vT0Av/76Kx988AFDhgx54br8MrUAREZGsnDhQjZu3GikSYJXmVSNjppmCkRQdAyO/Y0bN2bdunWsW7eO5s2bc/fu3Xyvy83UMnjwYA4ePAhATk4OPj4+InRWIChhDAo9PT2dgwcP4u/vz+PHj9Hr898IfTpTS2JiIgAbNmxg1KhRyGT5Z4JetWoVjRs3fuaPQCCQHoOuu7e3N0FBQWi1Wry9vUlNTc33uucztWRmZhIcHExCQgIhISEEBgbSqVOnZ8oUR6YWKQJVpFg4sZS5paBsYlDoy5cvJzQ0FAcHB9atW8f27dvzve75TC2xsbH88suTuZiHh8cLIi8upIikkmLhRMwtBSWJQaFnZGTwySefUL169QITLEL+mVpyWbZsmckGCgQC8zEqBNbR0ZEtW7YU6La/VKzMc72FyywQGCH0N998k9dff53q1atjZ2dXHDY9Q6pGL7ZjBAIzMSj0ffv2IZfL895HL6m5tkAgMB2DQu/RowepqamkpKQUuE0mEAgsG6OCZS9fvoy1tTXW1tYv2x6BQPASMCj0q1ev4ujoSL9+/Th16lRx2CQQCCTGqBE9KSmJM2fOiCSLAkEpxaDQx40bR7Nmzbh37x5eXl7FYJJAIJAag0Jfu3YtERER1KhRgwoVzH5JUSAQlAAGhe7l5cXUqVMJDAzk3XffLQ6bBAKBxBjcXps3bx4KhYKuXbsybdq04rBJIBBIjMER/csvv6RPnz7Y29tz+vTp4rBJIBBIjMER3cvLCwcHB+rXr09wcDA9e/YsDrsEAoGEGBR6tWrVcHNzQ6PRoFKpisMmgUAgMQaF3rp1aypWrMjGjRupWLFiMZgksFj0wPtR5tWRLIUhgqJiUOj9+/cH4Pvvv3/ZtggsHT1QoY55dUQlS2GJoIiIlEzFhFIpNytvmc7MnGWCsk2hQk9NTSUxMREnJyd8fX15++23cXV1LSbTXi20Wi3VKqaYXP5BsoOE1gjKGoUKfdGiRYwcOZI1a9bwwQcfsHz5cn766afisu2VQqcHq2Wmu71RY5KlM0ZQ5ihU6EqlkiZNmqDX62nevDm2trYFXptfAoe9e/cSFBREamoqnp6eVK1aVVrrBQKBURQaMKNWq1m8eDGdOnXiwoUL6HS6Aq/NL4GDvb09ixYt4v333+fSpUvSWi4QCIym0BF9/vz5xMTEUK9ePS5dusT8+fMLvPbpBA5BQUEA9OzZE5VKxdGjR/H29n6hzKpVq1i9evUzn23bts2UdgjKCOYuakLZXNgsVOhBQUEcO3aMrl278ttvv9GhQwe++uqrfK99PoEDQHR0NBs2bMDT0zNft784EjgIXi10Wi01TlU0q464bsmS2FKaKFTo27dvx9vbm88//5ydO3fi4eFR4LXPJ3CIiIhg3rx5ODs74+3tzZAhQ+jQoYPkDRAIioqtjazMeQWFCr18+fJUrlyZpk2bIpfLsbIq+PL8Ejhs3bpVGisFAgmpZPcYjpgX+FPavIJChX7nzh2mTZvG3bt3mTp1aoGZVAUCgWVTqNB9fX3Jzs5GqVQSHBxMs2bNissugUAgIYUKfcmSJbRv354bN25ga2uLj48P3333XXHZJhAIJKLQffT09HR69OhBUlISo0ePRqvVFpddAoFAQgwK/fjx47i6upKWlkZaWlpx2SUQCCSkUKG7u7uTkJDA8OHD2bdvH5MmTSouuwQCgYQUOkd3dXXNe1vto48+Kg57BIKXj1xZ4gdoSBHhZ2tt/Ga+eB+9DKFUKoiKGWdyeRtFwe86lCq06hI/QEOKCD/6xwLG5VoQQi82ZERNijW9eIr5mWzVWj11bpU3ubymYZzZNpiNFMdZ6ZWSmFKaEEIvLmRy6lyqYXLxqIZiIRSQ6DgrMzsKKZCkwzJevkLoRqBUKoiNGWtWHTbWIrf8q4SNjYIYM54JG4XO/A4rNhbsjbv0lRe6UiknNsq8RQ+lTEclUs2qQyuzxei7kg9PHizT59cAShuFWeUF/6NiTjJxDkYlI86/fErxrndYvNBtrfVmrU4qFXoqadPNskGrsEV+w3S3GyCqo1nFyS5vR51r5tVhrg2CpzBzKqZurkIfY8aaDaCzscXYrtvihV7JLhNss00ur5PZIL9esiIV/A+zXV6l+VMgvVKJzkyRaW0KPlbNGO6Xr2R2xx3bCYx9si1e6NosK+RZGpPL62wsvollCnNdXsccpdkjodbKGuXNSmbVUdo6f4tXQXz5StQMMb18abshrzzm7j50RExhTMDihS6wHPQ2tmaPpnozXV6BaQihC4xGinllWRxNLQHTJ0sCgaDUIIQuEJQBJHPd88vUcuTIEc6cOYNOp2P+/PmFHi4pEAheHpKN6PllavH392fBggW0a9eOwMBAqb5KIBAUEcmG2PwyteSO4C4uLsTHx79QpqBMLc8ncbhg3Jt4+ZJw3bzyllKHsMFybJCiDilsuH8N7ht5rWRCzy9Ti0LxJEDv6c+eJr9MLUWlcePGhIWFlWgdwgbp6hA2SFtHLpIJPb9MLW5ubnh6eqLX6/PNvSYQCIoHyYSeX6aWBg0a0L17d6m+QiAQmIjYXhMIygClXugTJkwo8TqEDdLVIWyQto5cZHq9vpTlhRS8DHQ6HXJ5qe/3BQVQau9seno6169fJysry+y6dLqSOd30+T62qH2uVH10Tk4Ohw4d4uHDh5LUV1LtMJeUlBSuXr1qVh1SZDPSaJ68li3l71IqhZ6Tk8Pu3bs5fPgw4eHhZGebdjDFyZMnSUxMRC6Xmyz2+/eN3cl8Fp1Oh0wmIy0tjWvXrpGRkYFMJivSzZXJnhzCcOrUKW7evEl6umkn6WRnZxMSEsKZM2dITEw0qQ6ApKSkPLtMacfJkyeJi4sjJyfHpO8PCgoyS6jp6emsWbOG69evm1z+u+++4/HjxybbkJWVxdKlS7l+/XqRf8fCKFVCz210Tk4OTk5OpKWlERAQQFhYWJFH9j179rBt2zY8PDzyxF5U9u/fz7fffsvu3buLXFYul5OcnMyKFSu4ePEiixcvJiUlxeibmzty7Nq1i7Vr17J7925OnTpl0kN2/PhxkpOT0el0nDlzhoSEhCLX4evry4YNG9i2bRtgvNhzrzl48CDr1q1jw4YNXL16tcid1ubNm9mzZw9r167lr7/+KrL9AOfOnaNevXr89ttvXLhwocjl7e3tqVixIo6OjiZ9f3Z2NlevXqVWrVr8/vvvhIWFSSb2UiX03J5/27Zt1K1bl5YtW/Lo0SOOHz9ORESEwfJZWVmcOnWK6OhoYmNjGTt2LH369GHatGlERkYaZUNuh3L+/Hn+/vtvunfvzpkzZ/Dz8zOq/NOd1aFDh3B2dmbkyJG8+eabeHt7k5mZmdfOgtDpdBw9epRDhw5RtWpVPDw86NChA2FhYfz1119FejByvaGZM2cyaNAgYmNjCQoKMsrDycjIIDU1lZs3b3LmzBkaNmzIgwcP2LBhA4DBdmg0GgIDAzl27Bg6nY7p06fz+uuvc+zYMS5cuGCwHdnZ2Rw5cgSNRoNMJsPNzY1x48axdevWIodcZ2VlER4ezoQJE5gyZQr//e9/CQ8PN6psUlISCxcuRKVScfnyZU6fPs3ly5d58OBBkQege/fu0aRJE9q0acPmzZvzRnZzKXVvmZw8eZLDhw/TunVrunbtSmZmJlFRUdSsWdNgWblczsaNGxk0aBADBw7E19cXa2trKlasiI2NTaFl9Xo9MpmMc+fOERoayrhx43BxcSEsLIyOHTuyZ88e3nnnHSpUKDiuMbeO1NRUzp8/j1qtpn79+ly4cIG3336b6tWrY2dnZ1Q7GjVqxNGjR6lZsyYajYaEhAQePnzI8OHDjX4wdu7ciUKhICAggJs3b9KpUyciIiIYOnSoUR5OREQEfn5+jB49mtmzZ3Pz5k2USiUBAQGkpKTg4OBQaHmZTIZSqSQtLQ0HBwdCQkLQarU8fPiQJk2aFNiO3N/RxsaG6OhoNm3axMiRIzlw4ABBQUHUqVOHOnWMP0o5ICCA5ORkGjZsSHR0NDExMVSpUoWKFSsaVf7OnTvs378flUqFQqHg3r17qFQqMjIy+Prrr42248qVK2RnZxMZGUnTpk3JysrCx8eH2bNnY21tbXQ9+WHxq+65NxUgJiaGs2fPYmtrS+3atXFycsLGxgZHR0fKlzecgSQgIIAzZ85Qrlw5XnvtNTQaDUePHsXDw4OqVasaZU9GRgabNm1CqVTywQcfsHLlSrKzs5k6dSrVqlUzWD4lJYW5c+fi5OREVlYWNWvWpFatWrRs2ZJ69eq90Ob8OHHiBElJSXTo0IETJ05w+fJlWrVqRd++falSpYpR7Thy5AjBwcEMGDCAy5cvExYWxvvvv0+VKlWMagc8GZHPnTvHgQMH6NatG2FhYURHRzN58mSqV69usPyxY8eAJy5vWloap06dolKlSnz88cdGtePEiRPUrFmT9evX07RpU1q2bMnff//N0KFDjer4AbZu3Up2djYajYbr168zdOhQLly4wKBBg6hVq1ahZbVaLQqFAp1Ox7lz51i5ciUuLi58//332NnZkZaWZtRzCfDHH39w9uxZ6tevT2JiIo0bN+b111/H1dXVYIdpDBYv9Fy2b9+OnZ0dzZs3x9nZme+//x4HBwdGjx5t1EOhVqvZuXMnjo6OuLm58c0339CvXz+6detmcDRPSUkhIyOD48ePExYWRqdOnTh37hxOTk58+umn6PV6KlUq+LDBXOHmjrz//PMPderUQavVsmXLFoYMGUK3bt2M+h1yO5lHjx5Rrlw53nnnHU6dOkWfPn0KteFp4uLi2LZtG6+//jr//ve/iY2NJSAggIEDB2Jvb9zZ8wcOHODIkSOMGzeO2NhYdu7cyfDhw2nRooVRc9QDBw4QEBDAJ598QmBgIM2aNSM1NZU33nijwJFUp9Oh0+lYsWIFVatW5datW7i5uXHt2jWioqKoVasWY8aMQak0LuVSTEwMPj4+tGrVip49e7JixQpq1arF4MGDDZbVarVs27aNtm3b0qxZMzQaDadPn2bdunV89tlnuLm5IZPJjPKurl27RlJSEkqlkurVq3PgwAFSU1MZP368JCIHC3bdnx7VAgMDOXnyJHXq1CEtLY309HQuX77M5s2bjRL5li1biI+Pp3v37vj5+fHo0SMcHBxo3LixQZHDk3nT+vXrqV+/PuPHjycqKopWrVpx48YNZDIZTk5OBtuRlpbG4cOHkclkdO7cmX379nHnzh06depktMhTU1NJTk6mSpUquLu7s3z5ck6cOMFHH31k9Lv+W7ZsIS0tDRsbG0JDQ1EoFLRt25Zhw4YVKpCn78eff/5JcHAws2fPZteuXXTq1IkhQ4bQqFEjo0SelpaGUqkkLi4ubxrj5OSEm5sbtrYFnyknl8uRy+WUK1eOsLAwRo0aRf369fNSe2u1WqNFfvz4cW7cuEH79u1JT0/n1KlTTJw4EZVKZVR5hUJB586dOXr0KFZWVjRq1AidTse//vUvOnToYPTirp+fH+Hh4UyfPh1/f3/279+PtbU148aNk0zkYMFCz32odu/eTa1atXB3d0etVnP69GmcnZ3ZtGmTUe722bNnefDgAdnZ2dy7d4++ffuiVquZNGmS0SOgVqvl3//+d962S9OmTdFoNPTu3btQ1+xpkU+fPp2RI0cSGhrKunXraN26NRUrVswbPQy56wcPHiQkJIShQ4cSEhLCtm3bmDx5MiqVyqDIU1JSiIuLo1y5coSEhNC0aVOcnJwICQnJe9gNCSTXtsjISN58803OnDlDfHw8/fv3Z+/evYwcOdKoeeTWrVuJj49n8uTJ1KpVi1u3blG7dm26du1aqMhz2bBhA9HR0QwfPpxt27bRoUMHQkJC6Nq1q8H7mZOTg7W1Ndu2bePSpUs4Ozuzd+9e3NzcyM7OJjMz0+hnAqBevXq4ubnh7+/P2bNnuXLlCtOmTcPZ2dmo8gkJCaSmpqJUKlEoFDRu3Jj09HS6du1q9PTJWCzSdVepVGzfvj1v3rR+/Xr+/PNPrl69ikKh4PPPP6dGDcNHBicmJnL//n3s7e3Jyspi3759yGQyJkyYYLSLunXrVqKjo5k4cSJ//PEHISEhTJkyhRo1ahQqzNxIs8zMTFJTU9mzZw+urq707t2bNWvW8M4771C/fn3AsMh9fX0JDg5GoVCQk5PD6NGjCQ8Pp2vXroUu/uUSFhbGihUrGDZsGC1atCAsLIyIiAji4+P57LPP8n2FOD/27NnDxo0b+fDDD3njjTdYvXo1Y8aMoUWLFkaNYLdu3WLHjh1UrVoVvV5P8+bNyc7OpkGDBtSuXTvfMk//NsnJydy9e5f169ezYMEC7t+/j6+vL+PHjzfY6efk5LBs2TLefvttqlSpQmxsLFWrVmXXrl08fvyYmTNnGrUQmh+PHz/m4cOHlCtXzqi1CXhyT4OCgmjVqhUxMTHodDo8PDywsbGRZJX9eSxO6ElJSSxZsoR27dpx7Ngx0tLS+PTTT+nevTv+/v507twZFxcXg/Xs3LmT4OBgWrduTUJCAqGhodSpU4cPP/zQ4CLL0/z1118oFAq6detGYGAgd+7coVevXkZNGbKysli5ciVJSUmMHTuWa9eusXv3bnr37s3w4cON+v74+HisrKy4desWFStWxM/Pj8ePH7Nw4cJCR9CnBZKTk0N0dHTe9EOtVpOQkMCXX35p9IMZERHBsWPHaNCgAVeuXKFmzZo0a9aMatWqGeVZBQcHc+TIEZycnOjRowd//PEHtra2TJkyxagH29/fHz8/Pz7++GPs7Oz47bffmDp1KjVr1jTojajVam7fvs3NmzcJCAhg0KBBKJVK1q9fT7Vq1fjiiy+MGjik4tGjR2zatAm1Ws3QoUPzApbeeusto72BomJRQtdqtaxatYrq1avz9ttvM3/+fKpXr87x48eZPn06PXv2LLDs0w/24cOHuXnzJiNHjiQiIoKYmBiSk5N57733jP4hDx06xPnz52nTpg1yuZzo6Gju3r3LjBkzDM5Dr127xt69ewGoUaMGjx8/Ji4uji+++IKDBw9Su3Zt+vfvb3Akz8jIYObMmYwYMQJHR0fmz59Ps2bN+Oyzzwx2VrkexY4dO7h48SL9+vVDrVbnzanff//9QueAT9vm7+9P06ZNSUlJISwsDI1Gw7Fjx1i2bFmh6xO5NqjValJTUzl79iwJCQm0bt2as2fPMmjQoAJHcvifZ9e8eXMOHDiAk5MT7dq1o1GjRgBYW1sX2sk83YaDBw/i5OREQkICQUFBdOjQgapVq+Lq6mp0ZycFFy9exM/PD71eT69evShXrhwHDx5k7ty5Zm+hFYZFzdEVCgX9+/dn//79eHl5MXHiRKKiooiLi6NJkyaFls29oWFhYdja2nL//n0ePXpE8+bN0Wg09OrVy6j5NDxZ/Mt9MB4/fkyLFi1wcnKib9++Ri02NW/enODgYK5du0aTJk2ws7Nj/fr1nDlzhk8//TTve54X+fOdlV6vZ968efzwww90796dWbNm4ezsbPDBTEpKYtWqVbRu3Zr79+/j7e3N4cOHqVKlCnPmzEEmkxm1xw1PPJrAwEDS0tKoVasW586dw97enkWLFhUq8qSkJJYuXZoX2jtnzhy6dOnC77//Tnh4OKNHjy7UhuTkZJYuXYqbmxuZmZk8ePCAJk2a4OLiwk8//WTQo3m6DWfPnuXhw4ckJSXlPQ+XLl1ixowZlCtXrtA6pCAnJwetVotKpaJVq1bk5OSQmZnJtWvXUKvVjBo16qWKHCxsRM8lLi6OnTt3UrduXU6ePMmkSZMKHcFyF1n++OMP9uzZQ9++ffPcoW+++SZvLmwMQUFBlC9fnuXLlzNlyhRSUlIIDQ1lzJgxRpV/Wqy///47hw8fRq1WM3DgQIYOHWpUHeHh4dStW5fvv/8eNzc3EhMT+eOPP9iwYYPBeWRSUhI//PAD7du3Jy4ujsjISAYPHoxOp+P06dNMnTrV6BX6PXv24O/vz9ixY1Eqldy8eRNXV1fq169fqMhVKhVr1qyhd+/e5OTksG/fPoYOHUp0dDTh4eGMGTPG4LrA9evXOX78OO+++y67d+9GqVRy/vx5WrduzZAhQwr1BJ7G19eX48eP06xZM+Li4qhXrx7t2rWjYcOGRu9xm0NSUlLeVvDNmzd57bXXqFixIi1atKBz5855e/EvG4sUOsDdu3fx8fFh2LBhhUY5JSUlsWjRIvr27cujR49wcnLKO7suKyuLDz74wKiFGmtra/bs2cOKFSv48ccfiY+P59y5c6jVasaOHVukeT08mRcqlUo8PT1p27YtAwYMAApeeFOr1WzevBlHR0dOnz5Nly5dGDBgAAsXLkSv1/PFF18YFcCxatUqatSoQe/evfn555/p06cPgYGBZGVlMWLEiEK9gadtO3LkCDdu3KB79+6cO3eOjh07otPpaNCgQaEC0Wq1rF69mtq1a/PGG2+waNEiVCoV1apVIzk5mYULFxolUpVKxd9//01GRgbvvPMOly9f5tSpU3z99ddGr4yrVCpUKhUPHz7E2dmZEydOkJCQgLu7u8nx6EUhNTWVH3/8kW7dutGtWze2bdvGyZMn6dChA9evX8fb2xt7e/uXsvj2PBYrdHgSeVXY6JOamsry5ctp164dffv2JT4+ng0bNlCnTh1u3LjB1KlTDc7JczuKdu3aAWBra0uvXr3ytqTq1KljdLTZ0zx48IAdO3Ygl8vzDsAsSOR37tyhbt26rF69mpMnT+Lr68t///tfFAoFn3zyCcnJyYWOoE9z9+5dDhw4QHh4OB999FGeQDMyMowewSIjIwkPD+fUqVNMnTqVxMREzpw5Y/QWWq4Nt27dyuuoVSoVLi4uRkcg5nL27FkyMzPZvXs3M2fONNjZpaSkkJSUxJUrVwgPD88LsNqzZw9WVlaMHz9e8q2rglCpVPj4+DBu3Li8z5YvX84nn3xChQoVjNpOlAqLFrohkpKS8PHx4csvvwSeCKlPnz58+OGH9OnTx+ANze0o2rdvT58+fYAn22k3b97ExsaGr7/+2qyghfT09LxtvMIW3oKCgvj555+ZPn06ly9fJiUlhS+//JItW7YwaNCgItuQu+00aNAgXFxcjBJnrlezefNmIiMjadu2Lbt378bBwSFv6mRsMAo8mX75+fkxcOBAatasafKolZCQwJ07d6hRo4ZBTyA+Pp7//Oc/eSvx8+fPZ+3atdja2tK2bVsaN25cbCIHyMzMZNOmTXz44Yc4Oztz4cIFduzYgZeXl9Hbu1JhUYtxRcXW1pbs7GwSExNxcXHh0qVLNGvWjIEDBxrlmuXk5FClShX69OmTJ8S///6brKwslixZYnZkkiGRazQa/vzzT1q1asVbb72Fn58fXl5ebNiwgS1btjBq1CiTvrd69er069ePw4cP8/HHHxu8Pnce2aVLF6Kjo1mwYAHwZHG0Tp062NvbF0nk8GS3IdeGTz75xOTFpipVqhjlUalUKry8vKhevTqTJk0iICCAtLQ0vvrqK3755RfatGkjaaSZMdjZ2dGrVy+2bt2Kg4MDERERuLu7F7vIoZQL3d7enj59+rB161ZsbW25desWkyZNMnr+9XxH8c8//6BUKpkyZYpRe/XGUpDIraysaNKkCZs3b2bixIncvn2biRMnMnToUBo3bmzWd9avX5/atWsbFJhKpWLt2rX07dsXa2vrvP1ye3t7/v77b3r37m2yi2msDeai0Wj49ddf86LrAgICaNasGadPn6Zjx454eHgUyzw4Pxo1akSNGjVQq9XodLqXtk9uiFLtuueSlpZGamoqcrm8yHPAsLAw/P39sbW1JTw8PC8082Xy/AsRFy9exN/fn08//ZSHDx9Ss2bNIrfDVDtyF87atWvHd999R0JCAjKZDGdnZzw9PV/6byEVqampVKhQgYcPH3LkyBEePXpEp06daNiwoVHRg686r4TQzcWcjsJUbt++zZEjR+jRoweNGzfm559/5siRI/j5+RXZTTaHpxfOPvzwQ+rVq0dCQgJVq1Y1aRGypNHr9SQkJHD69Gl69+5t9DvlrzpC6CXIvXv3OHz4MPb29ty4cYMxY8bwr3/9q9jtkGrhzJIorv3p0oIQeglz7949tm/fzvDhw40OAnkZREZGcvLkSbMWzgSWixC6BWAoXqC4yN1iE7x6CKELBGWAUnUKrEAgMI2S9xeLgEoNWSbkWbCVQ6V8FrLv3LnDqlWrKFeuHOXLl+fChQu4urqSlpaWFz7q5eWFQqFArVYza9YsHB0diYyMZOHChWzcuNH8RhVEtgq0JmShUdiCzYux4Ka09dSpUwQFBZGamoqnpyf+/v5ERkaSmprKwoULmTdvHsuWLZOgsYBaA6Yk0ZDLQfnsYyzFfd26dSuRkZEolUpmzpwpTRtLkFIl9Cwd1Czacd0AxHbK//PAwED69u1Lr169OH78OLGxsSxbtozExER++uknatWqRYUKFZg1axY3b97k4cOH2NnZ4ePjY3Tsuclos2C3cSeZPkP/2Hw/NqWtua+jHj16lEuXLlG7dm0+++yzvDDZmJgYFi5ciFqtZt68eeat1ut0EGRClpWOLSVp6/P39cKFC/z444+sXr2a27dvc+jQIVQqFba2tnh4eJjezhKiTLvuQ4cOJS4uDm9vb27cuEFcXBwzZsxgzJgxdO3alfr169O+fXu+/fZb/Pz8cHJyYsOGDYwaNarUbUGZ0taePXuiUqk4evQoPXr0oGfPnty7d4+IiAiaN29OtWrVmD17NrVq1SI0NLSkm5iHFPc1d3G0SpUqREVFkZiYiKenJ++9915JNs1kStWILjU+Pj4MGDCAChUq8Ouvv2Jvb8/ixYvRarWMGjUKJycnKlasiKenJyEhIfj4+BAcHExCQgIhISEEBgbSqVMB7oKFYUpb+/Xrx4YNG/D09MTW1jbvKKy5c+cil8vzTtC1srKyqD1rKe5r7hl4CQkJtGzZMq8DiIuLMzs8uSQoVavucdmmu+418jnVOTw8nB9//JHy5csjl8uJjIzE1dUVrVZL/fr1+eyzz5g3bx5yuZysrCwmTZqUl2TBw8NDuvlpfmTEme66l3vx/DNT2jpnzhycnZ2xtrZm8ODBzJ07lxYtWiCTyRg7dixeXl68+eabpKSkMH36dPPam51juutu8+yWoBT31dfXl9DQUGxsbJgxYwYrVqzIC7OdOHGieW0tAUqV0KVejLNoJF6Ms3gkXIwTvEipErpAIDCNMr0YJxCUFYTQBYIygBC6oMwQHx9f0iaUGKVqFUOVqSJLU/QFKlsrWyrZSRMt5ujoyN69e7lz5w7ffPNNXvBIbrSYVMcEqVSZZGVpi1zO1lZBpUovHglt6dFi2dnZ6ExYjHt6m+9p1Go1ixcvJisri8ePHzNixAh27tzJ0qVLX/6OiQVSqoSepcmi5vKibznFTpYuWuz27dtERUXlPZTPR4u1bPlipJYpZGVpqVlzXZHLxcaOy/fzlxEttmvXLlJTU8nMzGTJkiVmtVen07Fv374ilysogMXPz4/u3bvTpUsXNBoNo0aN4uHDh4SGhnLt2jXmzp2LVqtl4cKF/Pjjj6SlpWFnZ8ewYcPw8PDgrbfeysubV1qj4Z6mTLvupkRQtWnThv79++fV8Xy0mKUidbRYYmJi3nnlERERJdm0fLl58yZt2rQBntjdvHlzqlatSrNmzXB1dcXb2xu1Ws2tW7cIDg7Gzs6OqKgo0tLSaNGiBV988QWxsbHUqVOHd999t4RbYz6lakSXGlMiqJ4+oxt4IVrMUpE6WqxNmzasXLmSMWPGWOSRU40aNSI4OJjOnTuj1+uJjo7Oyw6Te769XC5Hq9Xy2muv4eHhwcGDB7Gzs8tL0/Tpp5+Snp7OokWL2LRpk0VF/xWVMi30N954g2nTpuVFUGVkZODh4YFWq6V9+/Y0adKEefPmsWPHjrwIqqfR6/VMnjyZFi1aMGvWLMaOHUvDhg1LqDWFY0pbczs1Dw8POnXqRExMDPPnz8fGxoa6deui1Wo5dOgQ8fHxpKSkFPtxyoXx0UcfsXTpUvbt20dmZiYjRozAx8eHc+fOPXNdkyZN2Lp1K3PnzqV8+fLPTL38/f3JyMigfv36pVrkUMoCZqRejLNkpF6Ms3SkXowTPEupErpAIDANy51UCgQCyRBCFwjKAKVrMU6lgiwT3uiytYV8Uu2+jOOVpAqYyVRlosnSFLmcla0VdsUUMCNl4ElmZiYajQnttbIqMGd8dnY2oaGh5OTksHXrVipXrszYsWNRqVR8++231K5dm/79+3P9+nXS09Pp2rUrOp2O1NRUunXrZnJbRo4cyaBBg8jKymLo0KEAnDt3jqioKIYMGWJyveZQuoSelQU1TXhHO7b4jlc6evSoJEEkmiwNy2suL3K5ybGTJWuroYAZKY+S0mg0LF9uQnsnv9je5ORkduzYQVRUFIMHD+bIkSPMnTsXhULBhg0bcHV1pXLlysjlcho2bMjjx4+5c+cOlStXxtfX94XdlStXruDn50dKSgrz5s1jzZo1ADg6OjJw4EBmzZpF+/btUavVtG3bFpVKRePGjTl48CAXLlxg586dpKWl0aVLF06cOMHZs2dJS0vD3d2dpUuX0rBhQ27fvs28efM4ePAgkZGRZGZm4uHhwcqVKwFo2bIlAwcONOGXfUKZdt1fxvFKlhpE8jICZiz1KKmtW7cSHR3NjBkzaNOmDSNGjGDZsmX4+PiQnp5O27Zt+fbbb/nPf/7Dr7/+yjvvvMO4ceO4ceMGjRs3ZsmSJc+0x9fXFy8vLzw9PYmMjKRKlSrMmTOHR48e8fjxY5o2bcqECROIjY2la9euNG7cOM+z+/PPP/H29mbQoEEAbN++PW+v/sqVK2i1WiZMmEDHjh0JDw/nypUreHp6Mnr0aPbu3Ut2djbly5fnypUrZv0mpWtElxipj1fKyspi8+bNFhlEInXATNu2bS32KKnx48cTERHBihUrqFevHvXq1WP69OmkpKSwZ88ebty4gYuLC46Ojmi1T7YwNRoNoaGh2NnZMXHiRH755ReaNWuW938ymYyMjAwcHBye8Vz0en1ettn8knDkXvv07zN58mTu3LlDVlbWM2V1Ol2ePbnJLt3c3OjWrRv79+836zcp00I3JYhkxowZODs74+3t/czxSrNmzeLzzz+32CASqQNm6tevT0xMDGvXriUlJYUmTZqUcAufpUGDBsyZM4fs7GyioqLw9vZGLpfj6enJnTt3WLBgAUqlkvHjxwOwa9cuBgwYwIMHD1ixYgWtW7fOq2vQoEHMmTOHzMxM5syZQ0JCAkuWLMHFxcVgEschQ4bg5eVFZmYmHTt2ZNCgQUybNo3MzEy8vLxeuL5ly5Z4e3uj1Wr55ptv8PLyYv/+/WatGUBp20eXeDHOkpF6Mc7SeRmLcYL/UbqELhAITKJML8YJBGUFIXSBoAwghC4QlAGE0AWCMoAQukBQBhBCFwjKAELoAkEZQAhdICgDCKELBGWA/wMhehrVdYJChgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 252x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Difference between mut. burden and sum of sigs (DBS):\n",
      "-7.611456359156238\n",
      "Sig DBS2 in other, 0.11 on average\n",
      "Sig DBS4 in other, 0.03 on average\n",
      "Sig DBS9 in other, 0.02 on average\n",
      "Sig DBS_C in other, 0.06 on average\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 252x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Difference between mut. burden and sum of sigs (ID):\n",
      "-52.005086634872235\n",
      "Sig ID1 in other, 0.10 on average\n",
      "Sig ID2 in other, 0.00 on average\n",
      "Sig ID3 in other, 0.01 on average\n",
      "Sig ID5 in other, 0.52 on average\n",
      "Sig ID8 in other, 0.10 on average\n",
      "Sig ID9 in other, 0.00 on average\n",
      "Sig ID11 in other, 0.00 on average\n",
      "Sig ID12 in other, 0.00 on average\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 252x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# merged_sigs_with_metadata.set_index('country').plot(kind='bar', stacked=True)\n",
    "sns.set(rc={'figure.figsize':(3.5,3)})\n",
    "sns.set_context(\"paper\", rc={\"font.size\":7,\"axes.titlesize\":7,\"axes.labelsize\":7,\"xtick.labelsize\":7,\"ytick.labelsize\":7,\"legend.fontsize\":7})\n",
    "sns.set_style('whitegrid', rc={\n",
    "    'xtick.bottom': True,\n",
    "    'ytick.left': True,\n",
    "})\n",
    "sns.color_palette(\"viridis\")\n",
    "sigs_to_group_to_other = ['SBS2','SBS5','SBS13','SBS18','SBS21','SBS44','DBS9','ID2','ID3','ID9','ID11','ID12']\n",
    "sigs_to_always_show = ['SBS12','SBS22','SBS1536I','DBS78D','ID83C','SBS1536F']\n",
    "signature_renaming = {\n",
    "    'SBS1536A':'SBS40b',\n",
    "    'SBS1536B':'SBS40a',\n",
    "    'SBS1536F':'SBS40c',\n",
    "    'SBS22':'SBS22a',\n",
    "    'SBS1536I':'SBS22b',\n",
    "    'DBS78D':'DBS20',\n",
    "    'DBS78C':'DBS_C',\n",
    "    'ID83C':'ID23'\n",
    "}\n",
    "\n",
    "colors = {'Others': 'darkgrey',\n",
    "          'SBS4' : 'deepskyblue',\n",
    "          'SBS12' : 'green',\n",
    "          'SBS22a' : 'red',\n",
    "          'SBS22b' : 'orange',\n",
    "          'SBS40a' : 'darkblue',\n",
    "          'SBS40b' : 'purple',\n",
    "          'SBS40c' : 'pink',\n",
    "          'DBS2' : 'deepskyblue',\n",
    "          'DBS_C' : 'green',\n",
    "          'DBS20' : 'orange',\n",
    "          'ID1' : 'deepskyblue',\n",
    "          'ID5' : 'green',\n",
    "          'ID8' : 'darkblue',\n",
    "          'ID23' : 'orange',\n",
    "          '<95% confidence' : 'grey'}\n",
    "\n",
    "import re\n",
    "natsort = lambda s: [int(t) if t.isdigit() else t.lower() for t in re.split('(\\d+)', s)]\n",
    "\n",
    "# sigs_to_group_to_other = []\n",
    "for mutation_type in mutation_types:\n",
    "    average_relative_attributions = pd.DataFrame(index=sorted(countries) + ['Overall'])\n",
    "    average_relative_attributions['Others'] = 0\n",
    "    sigs = [col for col in merged_sigs_with_metadata.columns if mutation_type in col\n",
    "            and not '_abs' in col and not 'CI' in col and not 'burden' in col and not '_rel' in col]\n",
    "    abs_sigs = [sig+'_abs' for sig in sigs]\n",
    "    CI_sigs = [sig+'_CI' for sig in sigs]\n",
    "    print('Difference between mut. burden and sum of sigs (%s):' % mutation_type)\n",
    "    print((merged_sigs_with_metadata[abs_sigs].sum(axis=1)-merged_sigs_with_metadata[mutation_type+'_burden']).mean())\n",
    "    for sig in sigs:\n",
    "        merged_sigs_with_metadata[sig+'_rel'] = merged_sigs_with_metadata[sig+'_CI']/merged_sigs_with_metadata[mutation_type+'_burden']\n",
    "#         merged_sigs_with_metadata[sig+'_rel'] = merged_sigs_with_metadata[sig+'_abs']/merged_sigs_with_metadata[abs_sigs].sum(axis=1) #merged_sigs_with_metadata[mutation_type+'_burden']\n",
    "#         merged_sigs_with_metadata[sig+'_rel'] = merged_sigs_with_metadata[sig+'_CI']/merged_sigs_with_metadata[CI_sigs].sum(axis=1) #merged_sigs_with_metadata[mutation_type+'_burden']\n",
    "        for country in countries:\n",
    "            average_relative_attributions.loc[country, sig] = merged_sigs_with_metadata[merged_sigs_with_metadata.country == country][sig+'_rel'].mean()\n",
    "        average_relative_attributions.loc['Overall', sig] = merged_sigs_with_metadata[sig+'_rel'].mean()\n",
    "    average_relative_attributions['<95% confidence'] = 1-average_relative_attributions[sigs].sum(axis=1)\n",
    "#     for sig in sigs_to_group_to_other:\n",
    "    for sig in [signature for signature in sigs if signature not in sigs_to_always_show]:\n",
    "        if mutation_type in sig and sig in sigs: #and merged_sigs_with_metadata[sig+'_rel'].mean()<0.05:\n",
    "            sig_name_to_print = signature_renaming[sig] if (sig in signature_renaming.keys() and analysis == 'COSMIC') else sig\n",
    "            sig_name_to_print = sig_name_to_print.replace('1536','_')\n",
    "            sig_name_to_print = sig_name_to_print.replace('83','_')\n",
    "            sig_name_to_print = sig_name_to_print.replace('78','_')\n",
    "            print('Sig %s in other, %.2f on average' % (sig_name_to_print, merged_sigs_with_metadata[sig+'_rel'].mean()))\n",
    "            if merged_sigs_with_metadata[sig+'_rel'].mean()<0.05:\n",
    "                average_relative_attributions['Others'] += average_relative_attributions[sig]\n",
    "                average_relative_attributions.drop(sig, axis=1, inplace=True)\n",
    "    if analysis == 'COSMIC':\n",
    "        average_relative_attributions.rename(columns=signature_renaming, inplace=True)\n",
    "    average_relative_attributions.columns = average_relative_attributions.columns.str.replace(\"1536\", \"_\", regex=\"False\")\n",
    "    average_relative_attributions.columns = average_relative_attributions.columns.str.replace(\"83\", \"_\", regex=\"False\")\n",
    "    average_relative_attributions.columns = average_relative_attributions.columns.str.replace(\"78\", \"_\", regex=\"False\")\n",
    "#     .sort_index(axis=1, inplace=True)\n",
    "    average_relative_attributions = average_relative_attributions.reindex(columns=sorted(average_relative_attributions.columns, key=natsort))\n",
    "    average_relative_attributions = average_relative_attributions.reindex(columns=(list([a for a in average_relative_attributions.columns if (a != 'Others' and a != '<95% confidence')] + ['Others'] + ['<95% confidence'] )))\n",
    "    ax = average_relative_attributions.plot(kind='bar', stacked=True, width=1, color=[colors[i] for i in average_relative_attributions.columns])\n",
    "    ax.tick_params(axis='x', pad=1)\n",
    "    # Rotate the tick labels and set their alignment\n",
    "    plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\", size=7)\n",
    "    plt.setp(ax.get_yticklabels(), size=7)\n",
    "    ax.set(xlabel=None)\n",
    "    ax.grid(False)\n",
    "    ax.set(ylabel='%s average relative proportion' % mutation_type)\n",
    "    ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.2), ncol=3, frameon=False)\n",
    "    plt.tight_layout()\n",
    "    plt.savefig(\"/Users/senkins/work/RCC_manuscript/Figures/Ext_Fig_2_%s_%s_rel.pdf\" % (analysis, mutation_type))\n",
    "    plt.show()\n",
    "# qgrid.show_grid(average_relative_attributions, grid_options={'forceFitColumns': False, 'defaultColumnWidth': 100})"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
